The graphics standard known as “OpenGL” defines a software interface for controlling graphics display systems. More specifically, it defines a number of commands that may be issued by client software to cause an OpenGL-compliant graphics system to draw. Some OpenGL commands are designed to place the graphics system into a particular state (e.g., set the current color to a particular color, or set the current model view matrix to a certain value). Other commands are designed to specify primitives for rendering (e.g., define the vertices of a triangle or other polygon).
It is common for client software to issue OpenGL commands in what is called immediate mode so that the commands will be executed upon receipt by the graphics system. But OpenGL also includes a notion of display lists. A display list represents a set of one or more commands. Once created, a display list is stored for possible later or repeated invocation by client software. For example, a display list might be created for rendering a wheel and then invoked four times to draw the four wheels of a car. For further background information on OpenGL and OpenGL display lists, see for example OpenGL Programming Guide (Addison-Wesley, 1993).
In practice, an OpenGL implementation is often provided in the form of a “stack” that includes an OpenGL library, one or more device drivers, and a hardware subsystem for accelerating rendering operations and driving a display device. An application or client may utilize the functionality exposed by an OpenGL stack by issuing OpenGL commands or function calls to the stack. This may be done locally in cases where the application is executing on the same host as the stack. Or this may be done remotely in cases where the application is executing on a first host while the OpenGL stack and display hardware are resident on a second host networked to the first host. Although many different commercially available stacks are OpenGL compliant, performance and extra features vary from one vendor's stack to another's.